home *** CD-ROM | disk | FTP | other *** search
/ Windows Game Programming for Dummies (2nd Edition) / WinGamProgFD.iso / mac / DirectX SDK / DXSDK / samples / Multimedia / DirectShow / Common / namedguid.cpp < prev    next >
C/C++ Source or Header  |  2001-10-08  |  21KB  |  421 lines

  1. //------------------------------------------------------------------------------
  2. // File: NamedGuid.cpp
  3. //
  4. // Desc: DirectShow sample code - helps in converting GUIDs to strings
  5. //
  6. // Copyright (c) 1996-2001 Microsoft Corporation.  All rights reserved.
  7. //------------------------------------------------------------------------------
  8.  
  9. #include <stdafx.h>
  10. #include <dshow.h>
  11. #include <dmo.h>
  12.  
  13. #include "namedguid.h"
  14.  
  15. //
  16. // Create a large table to allow searches by CLSID, media type, IID, etc.
  17. //
  18. const NamedGuid rgng[] =
  19. {
  20.     {&MEDIASUBTYPE_AIFF, TEXT("MEDIASUBTYPE_AIFF")},
  21.     {&MEDIASUBTYPE_AU, TEXT("MEDIASUBTYPE_AU")},
  22.     {&MEDIASUBTYPE_AnalogVideo_NTSC_M, TEXT("MEDIASUBTYPE_AnalogVideo_NTSC_M")},
  23.     {&MEDIASUBTYPE_AnalogVideo_PAL_B, TEXT("MEDIASUBTYPE_AnalogVideo_PAL_B")},
  24.     {&MEDIASUBTYPE_AnalogVideo_PAL_D, TEXT("MEDIASUBTYPE_AnalogVideo_PAL_D")},
  25.     {&MEDIASUBTYPE_AnalogVideo_PAL_G, TEXT("MEDIASUBTYPE_AnalogVideo_PAL_G")},
  26.     {&MEDIASUBTYPE_AnalogVideo_PAL_H, TEXT("MEDIASUBTYPE_AnalogVideo_PAL_H")},
  27.     {&MEDIASUBTYPE_AnalogVideo_PAL_I, TEXT("MEDIASUBTYPE_AnalogVideo_PAL_I")},
  28.     {&MEDIASUBTYPE_AnalogVideo_PAL_M, TEXT("MEDIASUBTYPE_AnalogVideo_PAL_M")},
  29.     {&MEDIASUBTYPE_AnalogVideo_PAL_N, TEXT("MEDIASUBTYPE_AnalogVideo_PAL_N")},
  30.     {&MEDIASUBTYPE_AnalogVideo_SECAM_B, TEXT("MEDIASUBTYPE_AnalogVideo_SECAM_B")},
  31.     {&MEDIASUBTYPE_AnalogVideo_SECAM_D, TEXT("MEDIASUBTYPE_AnalogVideo_SECAM_D")},
  32.     {&MEDIASUBTYPE_AnalogVideo_SECAM_G, TEXT("MEDIASUBTYPE_AnalogVideo_SECAM_G")},
  33.     {&MEDIASUBTYPE_AnalogVideo_SECAM_H, TEXT("MEDIASUBTYPE_AnalogVideo_SECAM_H")},
  34.     {&MEDIASUBTYPE_AnalogVideo_SECAM_K, TEXT("MEDIASUBTYPE_AnalogVideo_SECAM_K")},
  35.     {&MEDIASUBTYPE_AnalogVideo_SECAM_K1, TEXT("MEDIASUBTYPE_AnalogVideo_SECAM_K1")},
  36.     {&MEDIASUBTYPE_AnalogVideo_SECAM_L, TEXT("MEDIASUBTYPE_AnalogVideo_SECAM_L")},
  37.     {&MEDIASUBTYPE_Asf, TEXT("MEDIASUBTYPE_Asf")},
  38.     {&MEDIASUBTYPE_Avi, TEXT("MEDIASUBTYPE_Avi")},
  39.     {&MEDIASUBTYPE_CFCC, TEXT("MEDIASUBTYPE_CFCC")},
  40.     {&MEDIASUBTYPE_CLJR, TEXT("MEDIASUBTYPE_CLJR")},
  41.     {&MEDIASUBTYPE_CPLA, TEXT("MEDIASUBTYPE_CPLA")},
  42.     {&MEDIASUBTYPE_DOLBY_AC3, TEXT("MEDIASUBTYPE_DOLBY_AC3")},
  43.     {&MEDIASUBTYPE_DVCS, TEXT("MEDIASUBTYPE_DVCS")},
  44.     {&MEDIASUBTYPE_DVD_LPCM_AUDIO, TEXT("MEDIASUBTYPE_DVD_LPCM_AUDIO")},
  45.     {&MEDIASUBTYPE_DVD_NAVIGATION_DSI, TEXT("MEDIASUBTYPE_DVD_NAVIGATION_DSI")},
  46.     {&MEDIASUBTYPE_DVD_NAVIGATION_PCI, TEXT("MEDIASUBTYPE_DVD_NAVIGATION_PCI")},
  47.     {&MEDIASUBTYPE_DVD_NAVIGATION_PROVIDER, TEXT("MEDIASUBTYPE_DVD_NAVIGATION_PROVIDER")},
  48.     {&MEDIASUBTYPE_DVD_SUBPICTURE, TEXT("MEDIASUBTYPE_DVD_SUBPICTURE")},
  49.     {&MEDIASUBTYPE_DVSD, TEXT("MEDIASUBTYPE_DVSD")},
  50.     {&MEDIASUBTYPE_DssAudio, TEXT("MEDIASUBTYPE_DssAudio")},
  51.     {&MEDIASUBTYPE_DssVideo, TEXT("MEDIASUBTYPE_DssVideo")},
  52.     {&MEDIASUBTYPE_IF09, TEXT("MEDIASUBTYPE_IF09")},
  53.     {&MEDIASUBTYPE_IJPG, TEXT("MEDIASUBTYPE_IJPG")},
  54.     {&MEDIASUBTYPE_Line21_BytePair, TEXT("MEDIASUBTYPE_Line21_BytePair")},
  55.     {&MEDIASUBTYPE_Line21_GOPPacket, TEXT("MEDIASUBTYPE_Line21_GOPPacket")},
  56.     {&MEDIASUBTYPE_Line21_VBIRawData, TEXT("MEDIASUBTYPE_Line21_VBIRawData")},
  57.     {&MEDIASUBTYPE_MDVF, TEXT("MEDIASUBTYPE_MDVF")},
  58.     {&MEDIASUBTYPE_MJPG, TEXT("MEDIASUBTYPE_MJPG")},
  59.     {&MEDIASUBTYPE_MPEG1Audio, TEXT("MEDIASUBTYPE_MPEG1Audio")},
  60.     {&MEDIASUBTYPE_MPEG1AudioPayload, TEXT("MEDIASUBTYPE_MPEG1AudioPayload")},
  61.     {&MEDIASUBTYPE_MPEG1Packet, TEXT("MEDIASUBTYPE_MPEG1Packet")},
  62.     {&MEDIASUBTYPE_MPEG1Payload, TEXT("MEDIASUBTYPE_MPEG1Payload")},
  63.     {&MEDIASUBTYPE_MPEG1System, TEXT("MEDIASUBTYPE_MPEG1System")},
  64.     {&MEDIASUBTYPE_MPEG1Video, TEXT("MEDIASUBTYPE_MPEG1Video")},
  65.     {&MEDIASUBTYPE_MPEG1VideoCD, TEXT("MEDIASUBTYPE_MPEG1VideoCD")},
  66.     {&MEDIASUBTYPE_MPEG2_AUDIO, TEXT("MEDIASUBTYPE_MPEG2_AUDIO")},
  67.     {&MEDIASUBTYPE_MPEG2_PROGRAM, TEXT("MEDIASUBTYPE_MPEG2_PROGRAM")},
  68.     {&MEDIASUBTYPE_MPEG2_TRANSPORT, TEXT("MEDIASUBTYPE_MPEG2_TRANSPORT")},
  69.     {&MEDIASUBTYPE_MPEG2_VIDEO, TEXT("MEDIASUBTYPE_MPEG2_VIDEO")},
  70.     {&MEDIASUBTYPE_None, TEXT("MEDIASUBTYPE_None")},
  71.     {&MEDIASUBTYPE_Overlay, TEXT("MEDIASUBTYPE_Overlay")},
  72.     {&MEDIASUBTYPE_PCM, TEXT("MEDIASUBTYPE_PCM")},
  73.     {&MEDIASUBTYPE_PCMAudio_Obsolete, TEXT("MEDIASUBTYPE_PCMAudio_Obsolete")},
  74.     {&MEDIASUBTYPE_Plum, TEXT("MEDIASUBTYPE_Plum")},
  75.     {&MEDIASUBTYPE_QTJpeg, TEXT("MEDIASUBTYPE_QTJpeg")},
  76.     {&MEDIASUBTYPE_QTMovie, TEXT("MEDIASUBTYPE_QTMovie")},
  77.     {&MEDIASUBTYPE_QTRle, TEXT("MEDIASUBTYPE_QTRle")},
  78.     {&MEDIASUBTYPE_QTRpza, TEXT("MEDIASUBTYPE_QTRpza")},
  79.     {&MEDIASUBTYPE_QTSmc, TEXT("MEDIASUBTYPE_QTSmc")},
  80.     {&MEDIASUBTYPE_RGB1, TEXT("MEDIASUBTYPE_RGB1")},
  81.     {&MEDIASUBTYPE_RGB24, TEXT("MEDIASUBTYPE_RGB24")},
  82.     {&MEDIASUBTYPE_RGB32, TEXT("MEDIASUBTYPE_RGB32")},
  83.     {&MEDIASUBTYPE_RGB4, TEXT("MEDIASUBTYPE_RGB4")},
  84.     {&MEDIASUBTYPE_RGB555, TEXT("MEDIASUBTYPE_RGB555")},
  85.     {&MEDIASUBTYPE_RGB565, TEXT("MEDIASUBTYPE_RGB565")},
  86.     {&MEDIASUBTYPE_RGB8, TEXT("MEDIASUBTYPE_RGB8")},
  87.     {&MEDIASUBTYPE_TVMJ, TEXT("MEDIASUBTYPE_TVMJ")},
  88.     {&MEDIASUBTYPE_UYVY, TEXT("MEDIASUBTYPE_UYVY")},
  89.     {&MEDIASUBTYPE_VPVBI, TEXT("MEDIASUBTYPE_VPVBI")},
  90.     {&MEDIASUBTYPE_VPVideo, TEXT("MEDIASUBTYPE_VPVideo")},
  91.     {&MEDIASUBTYPE_WAKE, TEXT("MEDIASUBTYPE_WAKE")},
  92.     {&MEDIASUBTYPE_WAVE, TEXT("MEDIASUBTYPE_WAVE")},
  93.     {&MEDIASUBTYPE_Y211, TEXT("MEDIASUBTYPE_Y211")},
  94.     {&MEDIASUBTYPE_Y411, TEXT("MEDIASUBTYPE_Y411")},
  95.     {&MEDIASUBTYPE_Y41P, TEXT("MEDIASUBTYPE_Y41P")},
  96.     {&MEDIASUBTYPE_YUY2, TEXT("MEDIASUBTYPE_YUY2")},
  97.     {&MEDIASUBTYPE_YV12, TEXT("MEDIASUBTYPE_YV12")},
  98.     {&MEDIASUBTYPE_YVU9, TEXT("MEDIASUBTYPE_YVU9")},
  99.     {&MEDIASUBTYPE_YVYU, TEXT("MEDIASUBTYPE_YVYU")},
  100.     {&MEDIASUBTYPE_dvhd, TEXT("MEDIASUBTYPE_dvhd")},
  101.     {&MEDIASUBTYPE_dvsd, TEXT("MEDIASUBTYPE_dvsd")},
  102.     {&MEDIASUBTYPE_dvsl, TEXT("MEDIASUBTYPE_dvsl")},
  103.     {&MEDIATYPE_AUXLine21Data, TEXT("MEDIATYPE_AUXLine21Data")},
  104.     {&MEDIATYPE_AnalogAudio, TEXT("MEDIATYPE_AnalogAudio")},
  105.     {&MEDIATYPE_AnalogVideo, TEXT("MEDIATYPE_AnalogVideo")},
  106.     {&MEDIATYPE_Audio, TEXT("MEDIATYPE_Audio")},
  107.     {&MEDIATYPE_DVD_ENCRYPTED_PACK, TEXT("MEDIATYPE_DVD_ENCRYPTED_PACK")},
  108.     {&MEDIATYPE_DVD_NAVIGATION, TEXT("MEDIATYPE_DVD_NAVIGATION")},
  109.     {&MEDIATYPE_File, TEXT("MEDIATYPE_File")},
  110.     {&MEDIATYPE_Interleaved, TEXT("MEDIATYPE_Interleaved")},
  111.     {&MEDIATYPE_LMRT, TEXT("MEDIATYPE_LMRT")},
  112.     {&MEDIATYPE_MPEG1SystemStream, TEXT("MEDIATYPE_MPEG1SystemStream")},
  113.     {&MEDIATYPE_MPEG2_PES, TEXT("MEDIATYPE_MPEG2_PES")},
  114.     {&MEDIATYPE_Midi, TEXT("MEDIATYPE_Midi")},
  115.     {&MEDIATYPE_ScriptCommand, TEXT("MEDIATYPE_ScriptCommand")},
  116.     {&MEDIATYPE_Stream, TEXT("MEDIATYPE_Stream")},
  117.     {&MEDIATYPE_Text, TEXT("MEDIATYPE_Text")},
  118.     {&MEDIATYPE_Timecode, TEXT("MEDIATYPE_Timecode")},
  119.     {&MEDIATYPE_URL_STREAM, TEXT("MEDIATYPE_URL_STREAM")},
  120.     {&MEDIATYPE_Video, TEXT("MEDIATYPE_Video")},
  121.     {&WMMEDIASUBTYPE_Base, TEXT("WMMEDIASUBTYPE_Base")},
  122.     {&WMMEDIASUBTYPE_RGB1, TEXT("WMMEDIASUBTYPE_RGB1")},
  123.     {&WMMEDIASUBTYPE_RGB4, TEXT("WMMEDIASUBTYPE_RGB4")},
  124.     {&WMMEDIASUBTYPE_RGB8, TEXT("WMMEDIASUBTYPE_RGB8")},
  125.     {&WMMEDIASUBTYPE_RGB565, TEXT("WMMEDIASUBTYPE_RGB565")},
  126.     {&WMMEDIASUBTYPE_RGB555, TEXT("WMMEDIASUBTYPE_RGB555")},
  127.     {&WMMEDIASUBTYPE_RGB24, TEXT("WMMEDIASUBTYPE_RGB24")},
  128.     {&WMMEDIASUBTYPE_RGB32, TEXT("WMMEDIASUBTYPE_RGB32")},
  129.     {&WMMEDIASUBTYPE_I420, TEXT("WMMEDIASUBTYPE_I420")},
  130.     {&WMMEDIASUBTYPE_IYUV, TEXT("WMMEDIASUBTYPE_IYUV")},
  131.     {&WMMEDIASUBTYPE_YV12, TEXT("WMMEDIASUBTYPE_YV12")},
  132.     {&WMMEDIASUBTYPE_YUY2, TEXT("WMMEDIASUBTYPE_YUY2")},
  133.     {&WMMEDIASUBTYPE_UYVY, TEXT("WMMEDIASUBTYPE_UYVY")},
  134.     {&WMMEDIASUBTYPE_YVYU, TEXT("WMMEDIASUBTYPE_YVYU")},
  135.     {&WMMEDIASUBTYPE_YVU9, TEXT("WMMEDIASUBTYPE_YVU9")},
  136.     {&WMMEDIASUBTYPE_MP43, TEXT("WMMEDIASUBTYPE_MP43")},
  137.     {&WMMEDIASUBTYPE_MP4S, TEXT("WMMEDIASUBTYPE_MP4S")},
  138.     {&WMMEDIASUBTYPE_WMV1, TEXT("WMMEDIASUBTYPE_WMV1")},
  139.     {&WMMEDIASUBTYPE_MSS1, TEXT("WMMEDIASUBTYPE_MSS1")},
  140.     {&WMMEDIASUBTYPE_PCM, TEXT("WMMEDIASUBTYPE_PCM")},
  141.     {&WMMEDIASUBTYPE_DRM, TEXT("WMMEDIASUBTYPE_DRM")},
  142.     {&WMMEDIASUBTYPE_WMAudioV7, TEXT("WMMEDIASUBTYPE_WMAudioV7")},
  143.     {&WMMEDIASUBTYPE_WMAudioV2, TEXT("WMMEDIASUBTYPE_WMAudioV2")},
  144.     {&WMMEDIASUBTYPE_ACELPnet, TEXT("WMMEDIASUBTYPE_ACELPnet")},
  145.     {&WMMEDIATYPE_Audio, TEXT("WMMEDIATYPE_Audio")},
  146.     {&WMMEDIATYPE_Video, TEXT("WMMEDIATYPE_Video")},
  147.     {&WMMEDIATYPE_Script, TEXT("WMMEDIATYPE_Script")},
  148.     {&WMMEDIATYPE_Image, TEXT("WMMEDIATYPE_Image")},
  149.     {&WMFORMAT_VideoInfo, TEXT("WMFORMAT_VideoInfo")},
  150.     {&WMFORMAT_WaveFormatEx, TEXT("WMFORMAT_WaveFormatEx")},
  151.     {&WMFORMAT_Script, TEXT("WMFORMAT_Script")},
  152.     {&WMSCRIPTTYPE_TwoStrings, TEXT("WMSCRIPTTYPE_TwoStrings")},
  153.     {&PIN_CATEGORY_ANALOGVIDEOIN, TEXT("PIN_CATEGORY_ANALOGVIDEOIN")},
  154.     {&PIN_CATEGORY_CAPTURE, TEXT("PIN_CATEGORY_CAPTURE")},
  155.     {&PIN_CATEGORY_CC, TEXT("PIN_CATEGORY_CC")},
  156.     {&PIN_CATEGORY_EDS, TEXT("PIN_CATEGORY_EDS")},
  157.     {&PIN_CATEGORY_NABTS, TEXT("PIN_CATEGORY_NABTS")},
  158.     {&PIN_CATEGORY_PREVIEW, TEXT("PIN_CATEGORY_PREVIEW")},
  159.     {&PIN_CATEGORY_STILL, TEXT("PIN_CATEGORY_STILL")},
  160.     {&PIN_CATEGORY_TELETEXT, TEXT("PIN_CATEGORY_TELETEXT")},
  161.     {&PIN_CATEGORY_TIMECODE, TEXT("PIN_CATEGORY_TIMECODE")},
  162.     {&PIN_CATEGORY_VBI, TEXT("PIN_CATEGORY_VBI")},
  163.     {&PIN_CATEGORY_VIDEOPORT, TEXT("PIN_CATEGORY_VIDEOPORT")},
  164.     {&PIN_CATEGORY_VIDEOPORT_VBI, TEXT("PIN_CATEGORY_VIDEOPORT_VBI")},
  165.     {&CLSID_ACMWrapper, TEXT("CLSID_ACMWrapper")},
  166.     {&CLSID_AVICo, TEXT("CLSID_AVICo")},
  167.     {&CLSID_AVIDec, TEXT("CLSID_AVIDec")},
  168.     {&CLSID_AVIDoc, TEXT("CLSID_AVIDoc")},
  169.     {&CLSID_AVIDraw, TEXT("CLSID_AVIDraw")},
  170.     {&CLSID_AVIMIDIRender, TEXT("CLSID_AVIMIDIRender")},
  171.     {&CLSID_ActiveMovieCategories, TEXT("CLSID_ActiveMovieCategories")},
  172.     {&CLSID_AnalogVideoDecoderPropertyPage, TEXT("CLSID_AnalogVideoDecoderPropertyPage")},
  173.     {&CLSID_WMAsfReader, TEXT("CLSID_WMAsfReader")},
  174.     {&CLSID_WMAsfWriter, TEXT("CLSID_WMAsfWriter")},
  175.     {&CLSID_AsyncReader, TEXT("CLSID_AsyncReader")},
  176.     {&CLSID_AudioCompressorCategory, TEXT("CLSID_AudioCompressorCategory")},
  177.     {&CLSID_AudioInputDeviceCategory, TEXT("CLSID_AudioInputDeviceCategory")},
  178.     {&CLSID_AudioProperties, TEXT("CLSID_AudioProperties")},
  179.     {&CLSID_AudioRecord, TEXT("CLSID_AudioRecord")},
  180.     {&CLSID_AudioRender, TEXT("CLSID_AudioRender")},
  181.     {&CLSID_AudioRendererCategory, TEXT("CLSID_AudioRendererCategory")},
  182.     {&CLSID_AviDest, TEXT("CLSID_AviDest")},
  183.     {&CLSID_AviMuxProptyPage, TEXT("CLSID_AviMuxProptyPage")},
  184.     {&CLSID_AviMuxProptyPage1, TEXT("CLSID_AviMuxProptyPage1")},
  185.     {&CLSID_AviReader, TEXT("CLSID_AviReader")},
  186.     {&CLSID_AviSplitter, TEXT("CLSID_AviSplitter")},
  187.     {&CLSID_CAcmCoClassManager, TEXT("CLSID_CAcmCoClassManager")},
  188.     {&CLSID_CDeviceMoniker, TEXT("CLSID_CDeviceMoniker")},
  189.     {&CLSID_CIcmCoClassManager, TEXT("CLSID_CIcmCoClassManager")},
  190.     {&CLSID_CMidiOutClassManager, TEXT("CLSID_CMidiOutClassManager")},
  191.     {&CLSID_CMpegAudioCodec, TEXT("CLSID_CMpegAudioCodec")},
  192.     {&CLSID_CMpegVideoCodec, TEXT("CLSID_CMpegVideoCodec")},
  193.     {&CLSID_CQzFilterClassManager, TEXT("CLSID_CQzFilterClassManager")},
  194.     {&CLSID_CVidCapClassManager, TEXT("CLSID_CVidCapClassManager")},
  195.     {&CLSID_CWaveOutClassManager, TEXT("CLSID_CWaveOutClassManager")},
  196.     {&CLSID_CWaveinClassManager, TEXT("CLSID_CWaveinClassManager")},
  197.     {&CLSID_CameraControlPropertyPage, TEXT("CLSID_CameraControlPropertyPage")},
  198.     {&CLSID_CaptureGraphBuilder, TEXT("CLSID_CaptureGraphBuilder")},
  199.     {&CLSID_CaptureProperties, TEXT("CLSID_CaptureProperties")},
  200.     {&CLSID_Colour, TEXT("CLSID_Colour")},
  201.     {&CLSID_CrossbarFilterPropertyPage, TEXT("CLSID_CrossbarFilterPropertyPage")},
  202.     {&CLSID_DSoundRender, TEXT("CLSID_DSoundRender")},
  203.     {&CLSID_DVDHWDecodersCategory, TEXT("CLSID_DVDHWDecodersCategory")},
  204.     {&CLSID_DVDNavigator, TEXT("CLSID_DVDNavigator")},
  205.     {&CLSID_DVDecPropertiesPage, TEXT("CLSID_DVDecPropertiesPage")},
  206.     {&CLSID_DVEncPropertiesPage, TEXT("CLSID_DVEncPropertiesPage")},
  207.     {&CLSID_DVMux, TEXT("CLSID_DVMux")},
  208.     {&CLSID_DVMuxPropertyPage, TEXT("CLSID_DVMuxPropertyPage")},
  209.     {&CLSID_DVSplitter, TEXT("CLSID_DVSplitter")},
  210.     {&CLSID_DVVideoCodec, TEXT("CLSID_DVVideoCodec")},
  211.     {&CLSID_DVVideoEnc, TEXT("CLSID_DVVideoEnc")},
  212.     {&CLSID_DirectDraw, TEXT("CLSID_DirectDraw")},
  213.     {&CLSID_DirectDrawClipper, TEXT("CLSID_DirectDrawClipper")},
  214.     {&CLSID_DirectDrawProperties, TEXT("CLSID_DirectDrawProperties")},
  215.     {&CLSID_Dither, TEXT("CLSID_Dither")},
  216.     {&CLSID_DvdGraphBuilder, TEXT("CLSID_DvdGraphBuilder")},
  217.     {&CLSID_FGControl, TEXT("CLSID_FGControl")},
  218.     {&CLSID_FileSource, TEXT("CLSID_FileSource")},
  219.     {&CLSID_FileWriter, TEXT("CLSID_FileWriter")},
  220.     {&CLSID_FilterGraph, TEXT("CLSID_FilterGraph")},
  221.     {&CLSID_FilterGraphNoThread, TEXT("CLSID_FilterGraphNoThread")},
  222.     {&CLSID_FilterMapper, TEXT("CLSID_FilterMapper")},
  223.     {&CLSID_FilterMapper2, TEXT("CLSID_FilterMapper2")},
  224.     {&CLSID_InfTee, TEXT("CLSID_InfTee")},
  225.     {&CLSID_LegacyAmFilterCategory, TEXT("CLSID_LegacyAmFilterCategory")},
  226.     {&CLSID_Line21Decoder, TEXT("CLSID_Line21Decoder")},
  227.     {&CLSID_MOVReader, TEXT("CLSID_MOVReader")},
  228.     {&CLSID_MPEG1Doc, TEXT("CLSID_MPEG1Doc")},
  229.     {&CLSID_MPEG1PacketPlayer, TEXT("CLSID_MPEG1PacketPlayer")},
  230.     {&CLSID_MPEG1Splitter, TEXT("CLSID_MPEG1Splitter")},
  231.     {&CLSID_MediaPropertyBag, TEXT("CLSID_MediaPropertyBag")},
  232.     {&CLSID_MemoryAllocator, TEXT("CLSID_MemoryAllocator")},
  233.     {&CLSID_MidiRendererCategory, TEXT("CLSID_MidiRendererCategory")},
  234.     {&CLSID_ModexProperties, TEXT("CLSID_ModexProperties")},
  235.     {&CLSID_ModexRenderer, TEXT("CLSID_ModexRenderer")},
  236.     {&CLSID_OverlayMixer, TEXT("CLSID_OverlayMixer")},
  237.     {&CLSID_PerformanceProperties, TEXT("CLSID_PerformanceProperties")},
  238.     {&CLSID_PersistMonikerPID, TEXT("CLSID_PersistMonikerPID")},
  239.     {&CLSID_ProtoFilterGraph, TEXT("CLSID_ProtoFilterGraph")},
  240.     {&CLSID_QualityProperties, TEXT("CLSID_QualityProperties")},
  241.     {&CLSID_SeekingPassThru, TEXT("CLSID_SeekingPassThru")},
  242.     {&CLSID_SmartTee, TEXT("CLSID_SmartTee")},
  243.     {&CLSID_SystemClock, TEXT("CLSID_SystemClock")},
  244.     {&CLSID_SystemDeviceEnum, TEXT("CLSID_SystemDeviceEnum")},
  245.     {&CLSID_TVAudioFilterPropertyPage, TEXT("CLSID_TVAudioFilterPropertyPage")},
  246.     {&CLSID_TVTunerFilterPropertyPage, TEXT("CLSID_TVTunerFilterPropertyPage")},
  247.     {&CLSID_TextRender, TEXT("CLSID_TextRender")},
  248.     {&CLSID_URLReader, TEXT("CLSID_URLReader")},
  249.     {&CLSID_VBISurfaces, TEXT("CLSID_VBISurfaces")},
  250.     {&CLSID_VPObject, TEXT("CLSID_VPObject")},
  251.     {&CLSID_VPVBIObject, TEXT("CLSID_VPVBIObject")},
  252.     {&CLSID_VfwCapture, TEXT("CLSID_VfwCapture")},
  253.     {&CLSID_VideoCompressorCategory, TEXT("CLSID_VideoCompressorCategory")},
  254.     {&CLSID_VideoInputDeviceCategory, TEXT("CLSID_VideoInputDeviceCategory")},
  255.     {&CLSID_VideoProcAmpPropertyPage, TEXT("CLSID_VideoProcAmpPropertyPage")},
  256.     {&CLSID_VideoRenderer, TEXT("CLSID_VideoRenderer")},
  257.     {&CLSID_VideoStreamConfigPropertyPage, TEXT("CLSID_VideoStreamConfigPropertyPage")},
  258.     {&FORMAT_AnalogVideo, TEXT("FORMAT_AnalogVideo")},
  259.     {&FORMAT_DVD_LPCMAudio, TEXT("FORMAT_DVD_LPCMAudio")},
  260.     {&FORMAT_DolbyAC3, TEXT("FORMAT_DolbyAC3")},
  261.     {&FORMAT_DvInfo, TEXT("FORMAT_DvInfo")},
  262.     {&FORMAT_MPEG2Audio, TEXT("FORMAT_MPEG2Audio")},
  263.     {&FORMAT_MPEG2Video, TEXT("FORMAT_MPEG2Video")},
  264.     {&FORMAT_MPEG2_VIDEO, TEXT("FORMAT_MPEG2_VIDEO")},
  265.     {&FORMAT_MPEGStreams, TEXT("FORMAT_MPEGStreams")},
  266.     {&FORMAT_MPEGVideo, TEXT("FORMAT_MPEGVideo")},
  267.     {&FORMAT_None, TEXT("FORMAT_None")},
  268.     {&FORMAT_VIDEOINFO2, TEXT("FORMAT_VIDEOINFO2")},
  269.     {&FORMAT_VideoInfo, TEXT("FORMAT_VideoInfo")},
  270.     {&FORMAT_VideoInfo2, TEXT("FORMAT_VideoInfo2")},
  271.     {&FORMAT_WaveFormatEx, TEXT("FORMAT_WaveFormatEx")},
  272.     {&TIME_FORMAT_BYTE, TEXT("TIME_FORMAT_BYTE")},
  273.     {&TIME_FORMAT_FIELD, TEXT("TIME_FORMAT_FIELD")},
  274.     {&TIME_FORMAT_FRAME, TEXT("TIME_FORMAT_FRAME")},
  275.     {&TIME_FORMAT_MEDIA_TIME, TEXT("TIME_FORMAT_MEDIA_TIME")},
  276.     {&TIME_FORMAT_SAMPLE, TEXT("TIME_FORMAT_SAMPLE")},
  277.     {&ROPSETID_Pin, TEXT("AMPROPSETID_Pin")},
  278.     {&AM_INTERFACESETID_Standard, TEXT("AM_INTERFACESETID_Standard")},
  279.     {&AM_KSCATEGORY_AUDIO, TEXT("AM_KSCATEGORY_AUDIO")},
  280.     {&AM_KSCATEGORY_CAPTURE, TEXT("AM_KSCATEGORY_CAPTURE")},
  281.     {&AM_KSCATEGORY_CROSSBAR, TEXT("AM_KSCATEGORY_CROSSBAR")},
  282.     {&AM_KSCATEGORY_DATACOMPRESSOR, TEXT("AM_KSCATEGORY_DATACOMPRESSOR")},
  283.     {&AM_KSCATEGORY_RENDER, TEXT("AM_KSCATEGORY_RENDER")},
  284.     {&AM_KSCATEGORY_TVAUDIO, TEXT("AM_KSCATEGORY_TVAUDIO")},
  285.     {&AM_KSCATEGORY_TVTUNER, TEXT("AM_KSCATEGORY_TVTUNER")},
  286.     {&AM_KSCATEGORY_VIDEO, TEXT("AM_KSCATEGORY_VIDEO")},
  287.     {&AM_KSPROPSETID_AC3, TEXT("AM_KSPROPSETID_AC3")},
  288.     {&AM_KSPROPSETID_CopyProt, TEXT("AM_KSPROPSETID_CopyProt")},
  289.     {&AM_KSPROPSETID_DvdSubPic, TEXT("AM_KSPROPSETID_DvdSubPic")},
  290.     {&AM_KSPROPSETID_TSRateChange, TEXT("AM_KSPROPSETID_TSRateChange")},
  291.     {&IID_IAMDirectSound, TEXT("IID_IAMDirectSound")},
  292.     {&IID_IAMLine21Decoder, TEXT("IID_IAMLine21Decoder")},
  293.     {&IID_IBaseVideoMixer, TEXT("IID_IBaseVideoMixer")},
  294.     {&IID_IDDVideoPortContainer, TEXT("IID_IDDVideoPortContainer")},
  295.     {&IID_IDirectDraw, TEXT("IID_IDirectDraw")},
  296.     {&IID_IDirectDraw2, TEXT("IID_IDirectDraw2")},
  297.     {&IID_IDirectDrawClipper, TEXT("IID_IDirectDrawClipper")},
  298.     {&IID_IDirectDrawColorControl, TEXT("IID_IDirectDrawColorControl")},
  299.     {&IID_IDirectDrawKernel, TEXT("IID_IDirectDrawKernel")},
  300.     {&IID_IDirectDrawPalette, TEXT("IID_IDirectDrawPalette")},
  301.     {&IID_IDirectDrawSurface, TEXT("IID_IDirectDrawSurface")},
  302.     {&IID_IDirectDrawSurface2, TEXT("IID_IDirectDrawSurface2")},
  303.     {&IID_IDirectDrawSurface3, TEXT("IID_IDirectDrawSurface3")},
  304.     {&IID_IDirectDrawSurfaceKernel, TEXT("IID_IDirectDrawSurfaceKernel")},
  305.     {&IID_IDirectDrawVideo, TEXT("IID_IDirectDrawVideo")},
  306.     {&IID_IFullScreenVideo, TEXT("IID_IFullScreenVideo")},
  307.     {&IID_IFullScreenVideoEx, TEXT("IID_IFullScreenVideoEx")},
  308.     {&IID_IKsDataTypeHandler, TEXT("IID_IKsDataTypeHandler")},
  309.     {&IID_IKsInterfaceHandler, TEXT("IID_IKsInterfaceHandler")},
  310.     {&IID_IKsPin, TEXT("IID_IKsPin")},
  311.     {&IID_IMixerPinConfig, TEXT("IID_IMixerPinConfig")},
  312.     {&IID_IMixerPinConfig2, TEXT("IID_IMixerPinConfig2")},
  313.     {&IID_IMpegAudioDecoder, TEXT("IID_IMpegAudioDecoder")},
  314.     {&IID_IQualProp, TEXT("IID_IQualProp")},
  315.     {&IID_IVPConfig, TEXT("IID_IVPConfig")},
  316.     {&IID_IVPControl, TEXT("IID_IVPControl")},
  317.     {&IID_IVPNotify, TEXT("IID_IVPNotify")},
  318.     {&IID_IVPNotify2, TEXT("IID_IVPNotify2")},
  319.     {&IID_IVPObject, TEXT("IID_IVPObject")},
  320.     {&IID_IVPVBIConfig, TEXT("IID_IVPVBIConfig")},
  321.     {&IID_IVPVBINotify, TEXT("IID_IVPVBINotify")},
  322.     {&IID_IVPVBIObject, TEXT("IID_IVPVBIObject")},
  323.     {&LOOK_DOWNSTREAM_ONLY, TEXT("LOOK_DOWNSTREAM_ONLY")},
  324.     {&LOOK_UPSTREAM_ONLY, TEXT("LOOK_UPSTREAM_ONLY")},
  325.     {0, 0},
  326. };
  327.  
  328.  
  329.  
  330. void GetGUIDString(TCHAR *szString, GUID *pGUID)
  331. {
  332.     int i=0;
  333.  
  334.     // Find format GUID's name in the named guids table
  335.     while (rgng[i].pguid != 0)
  336.     {
  337.         if(*pGUID == *(rgng[i].pguid))
  338.         {
  339.             wsprintf(szString, TEXT("%s\0"), rgng[i].psz);
  340.             return;
  341.         }
  342.         i++;
  343.     }
  344.  
  345.     // If we got here, there was no match
  346.     wsprintf(szString, TEXT("GUID_NULL\0"));
  347. }
  348.  
  349.  
  350. void GetFormatString(TCHAR *szFormat, DMO_MEDIA_TYPE *pType)
  351. {
  352.     int i=0;
  353.  
  354.     // Find format GUID's name in the named guids table
  355.     while (rgng[i].pguid != 0)
  356.     {
  357.         if(pType->formattype == *(rgng[i].pguid))
  358.         {
  359.             wsprintf(szFormat, TEXT("%s\0"), rgng[i].psz);
  360.             return;
  361.         }
  362.         i++;
  363.     }
  364.  
  365.     // If we got here, there was no match
  366.     wsprintf(szFormat, TEXT("Format_None\0"));
  367. }
  368.  
  369.  
  370. void GetTypeSubtypeString(TCHAR *szCLSID, DMO_PARTIAL_MEDIATYPE& aList)
  371. {
  372.     HRESULT hr;
  373.     CString strType, strSubtype;
  374.     int j;
  375.  
  376.     LPOLESTR szType, szSubtype;
  377.  
  378.     // Convert binary CLSID to a readable version
  379.     hr = StringFromCLSID(aList.type, &szType);
  380.     if(FAILED(hr))
  381.         return;
  382.     hr = StringFromCLSID(aList.subtype, &szSubtype);
  383.     if(FAILED(hr))
  384.         return;
  385.  
  386.     // Set default type/subtype strings to their actual GUID values
  387.     strType = szType;
  388.     strSubtype = szSubtype;
  389.  
  390.     // Find type GUID's name in the named guids table
  391.     j=0;
  392.     while (rgng[j].pguid != 0)
  393.     {
  394.         if(aList.type == *(rgng[j].pguid))
  395.         {
  396.             strType = rgng[j].psz;  // Save type name
  397.             break;
  398.         }
  399.         j++;
  400.     }
  401.  
  402.     // Find subtype GUID's name in the named guids table
  403.     j=0;
  404.     while (rgng[j].pguid != 0)
  405.     {
  406.         if(aList.subtype == *(rgng[j].pguid))
  407.         {
  408.             strSubtype = rgng[j].psz; // Save subtype name
  409.             break;
  410.         }
  411.         j++;
  412.     }
  413.  
  414.     // Build a string with the type/subtype information.
  415.     // If a friendly name was found, it will be used.
  416.     // Otherwise, the type/subtype's GUID will be displayed.
  417.     wsprintf(szCLSID, TEXT("%s\t%s"), strType, strSubtype);
  418. }
  419.  
  420.  
  421.